package com.lcc.spring;

/**
 * <一句话功能描述> BeanPost 处理器
 * <功能详细描述>
 *
 * @author Mr Lcc
 * @version [版本号, 2024/11/23]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public interface BeanPostProcessor {

    /**
     * <一句话功能描述> 前置处理器
     * <功能详细描述>
     *
     * @param bean  bean
     * @param beanName beanName
     * @return java.lang.Object
     * @author Mr Lcc
     * @since 2024/11/23 22:42
     */
    default Object postProcessBeforeInitialization(Object bean, String beanName) {
        return bean;
    }

    /**
     * <一句话功能描述>
     * <功能详细描述>
     *
     * @param bean bean
     * @param beanName beanName
     * @return java.lang.Object
     * @author Mr Lcc
     * @since 2024/11/23 22:42
     */
    default Object postProcessAfterInitialization(Object bean, String beanName) {
        return bean;
    }

}
